package com.example.demo.singletonMode;

/**
 * 懒汉式单例
 * 按需加载，避免内存浪费，减少类加载时间，
 * 线程不安全：多个线程同时调用getInstance()方法，变量可能被实例多次
 * 解决：<-- 双检锁式线程安全单例，DCL单例( 移动至类SyncLazy)，
 */
public class Lazy {

    private static Lazy LAZY;

    private Lazy(){
        System.out.println(Thread.currentThread().getName()+"ok");
    }

    public static Lazy getInstance(){
        if(LAZY == null){
            LAZY = new Lazy();
        }
        return LAZY;
    }


    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            new Thread(()->getInstance()).start();
        }
    }



}
